package cn.topcodes.tcsf.admin.commons.api.controller.query;

import cn.topcodes.tcsf.admin.commons.api.domain.ApiResponseEntity;
import cn.topcodes.tcsf.admin.commons.domain.Page;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface QueryIdEntityApi<V> extends QueryApi<V> {

	/*条件查询标记删除实体列表*/
	@ApiOperation(value = "条件查询标记删除资源列表", notes = "条件查询标记删除资源列表")
	@ResponseBody
	@RequestMapping(value="list-mark-delete",method=RequestMethod.GET)
	ApiResponseEntity<List<V>> listMarkDelete(
			HttpServletRequest request
		);
	
	/*分页条件查询标记删除资源列表*/
	@ApiOperation(value = "分页条件查询标记删除资源列表", notes = "分页条件查询标记删除资源列表")
	@ResponseBody
	@RequestMapping(value="page-list-mark-delete",method=RequestMethod.GET)
	ApiResponseEntity<Page<V>> pageListMarkDelete(
			HttpServletRequest request,
			@ApiParam(value="页号") @RequestParam(value="page",required=false,defaultValue="1") Integer pageNumber,
			@ApiParam(value="每页条数") @RequestParam(value="size",required=false,defaultValue="10") Integer pageSize
			);
	
	/*条件查询启用实体列表*/
	@ApiOperation(value = "条件查询启用资源列表", notes = "条件查询启用资源列表")
	@ResponseBody
	@RequestMapping(value="list-enable",method=RequestMethod.GET)
	ApiResponseEntity<List<V>> listEnable(
			HttpServletRequest request
		);
	
	/*分页条件查询启用资源列表*/
	@ApiOperation(value = "分页条件查询启用资源列表", notes = "分页条件查询启用资源列表")
	@ResponseBody
	@RequestMapping(value="page-list-enable",method=RequestMethod.GET)
	ApiResponseEntity<Page<V>> pageListEnable(
			HttpServletRequest request,
			@ApiParam(value="页号") @RequestParam(value="page",required=false,defaultValue="1") Integer pageNumber,
			@ApiParam(value="每页条数") @RequestParam(value="size",required=false,defaultValue="10") Integer pageSize
			);
	
	/*条件查询禁用实体列表*/
	@ApiOperation(value = "条件查询禁用资源列表", notes = "条件查询禁用资源列表")
	@ResponseBody
	@RequestMapping(value="list-disable",method=RequestMethod.GET)
	ApiResponseEntity<List<V>> listDisable(
			HttpServletRequest request
		);
	
	/*分页条件查询禁用资源列表*/
	@ApiOperation(value = "分页条件查询禁用资源列表", notes = "分页条件查询禁用资源列表")
	@ResponseBody
	@RequestMapping(value="page-list-disable",method=RequestMethod.GET)
	ApiResponseEntity<Page<V>> pageListDisable(
			HttpServletRequest request,
			@ApiParam(value="页号") @RequestParam(value="page",required=false,defaultValue="1") Integer pageNumber,
			@ApiParam(value="每页条数") @RequestParam(value="size",required=false,defaultValue="10") Integer pageSize
			);
}
